package edu.columbia.aicheckers.agent;

import java.util.BitSet;

import edu.columbia.aicheckers.model.Color;
import edu.columbia.aicheckers.model.IBoardState;
import edu.columbia.aicheckers.model.Move;

/**
 * An intelligent agent that assumes certain attributes are true.
 * These attributes were picked on intuition and represent a set
 * of options that can be toggled on and off.
 * @author C.M.R
 */
public class IntelliAgent implements IAgent{

	AgentHelper helper;
	int[] attributes = new int[] {0,1,2,3,4,5,6,7,8,9,10,11,12,13};
	public IntelliAgent()
	{
		BitSet allSet = new BitSet(AgentHelper.NUM_ATTRIBUTES);
		for(int i =0;i < attributes.length; i++)
		{
			allSet.set(i);
		}
		helper = new AgentHelper(allSet);
	}
	
	public Move doPly(IBoardState board, Color myColor) {
		
		return helper.moveSelection(board, myColor, true);
	}

}
